Xm-test HVM network testing is broken. The new qemu code doesn't support
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 14 Jul 2006 10:54:10 +0000 (11:54 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 14 Jul 2006 10:54:10 +0000 (11:54 +0100)
pcnet32, which is the current default driver loaded onto the disk.img.
This patch changes teh default to the rtl8139, which is xend's default.
This patch also adds a new "--with-network-drv" configuration option so
people can configure different drivers than the default.

Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
tools/xm-test/configure.ac
tools/xm-test/ramdisk/Makefile.am
tools/xm-test/ramdisk/bin/create_disk_image

index 291ed1e86ebc2e52b9d87381281217648e2db718..5183162f82f36d8f5f9664e68a2575d7d48700f8 100644 (file)
@@ -84,6 +84,14 @@ AC_ARG_WITH(driver-dir,
 dnl substitute @DRVDIR@ in all Makefiles
 AC_SUBST(DRVDIR)
 
+NETDRV="8139too.ko"
+AC_ARG_WITH(network-drv,
+       [  --with-network-drv=driver Set network driver to use [[default="8139too.ko"]]],
+       [ NETDRV="$withval" ])
+
+dnl substitute @DRVDIR@ in all Makefiles
+AC_SUBST(NETDRV)
+
 AC_SUBST(TENV)
 AC_SUBST(PACKAGE_VERSION)
 
index f4f19ff980496486934e829c0aa17b1d7cf89317..032212403aed501f6be1696bd59ac3eec2360156 100644 (file)
@@ -51,13 +51,14 @@ disk.img: existing
        chmod a+x $(HVM_SCRIPT)
        @if test ! "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
                $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL) \
-                       -d $(DRVDIR); \
+                       -d $(DRVDIR) -n $(NETDRV); \
        elif test "$(HVMKERNEL)" = "no" -a ! "$(DRVDIR)" = "no"; then \
-               $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -d $(DRVDIR); \
+               $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -d $(DRVDIR) -n $(NETDRV); \
        elif test ! "$(HVMKERNEL)" = "no" -a "$(DRVDIR)" = "no"; then \
-               $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL); \
+               $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -k $(HVMKERNEL) \
+                       -n $(NETDRV); \
        else \
-               $(HVM_SCRIPT) -r $(XMTEST_VER_IMG); \
+               $(HVM_SCRIPT) -r $(XMTEST_VER_IMG) -n $(NETDRV); \
        fi
 
 existing:
index 513af46d3549a26fc7de21f994f961beb9a97973..6b1bfde2ae131aed72b1fcaa1620ed8ba0579a4f 100644 (file)
@@ -51,20 +51,21 @@ Command creates a hvm guest disk image for xm-test.
 Usage: $0 [OPTIONS]
 
 OPTIONS:
-    -d|--dvrdir <name>       Directory where to fine network driver 
+    -d|--dvrdir <name>       Directory where to find network driver 
                              to use for disk image. 
     -i|--image <name>        Image name to create.
     -k|--kernel <name>       Kernel name to use for disk image.
+    -n|--netdrv <name>       Network driver name to use for disk image.
     -r|--rootfs <image>      Rootfs image to use for disk image.
 
-This script currently only supports the pcnet32 driver for network
-tests. If a dvrdir isn't added on the command-line, it will look
-in /lib/modules/ directory relating to the supplied kernel. If the
+This script defaults to using the 8139too.ko driver for network tests. 
+If a dvrdir isn't added on the command-line, it will look in 
+/lib/modules/ directory relating to the supplied kernel. If the
 network driver is built into the kernel, you can specify the key word
 "builtin" with the -d option and the script will continue.
 
-Note: The pcnet32 driver relies upon mii.ko. This script will look
-for that module in the same location as the pcnet32 driver, either
+Note: Many network drivers rely upon mii.ko. This script will look
+for that module in the same location as the network driver, either
 for the kernel or the location used with the -d option.
 
 EOU
@@ -94,6 +95,7 @@ function initialize_globals()
        IMAGE="disk.img"
        KERNEL=""
        DRVDIR=""
+       NETDRV="8139too.ko"
        LCONF="lilo.conf"
        LOOPD=""    # Loop device for entire disk image
        LOOPP=""    # Loop device for ext partition
@@ -126,6 +128,11 @@ function get_options()
                                KERNEL=${1}
                                shift
                                ;;
+                       -n|--netdrv)
+                               shift
+                               NETDRV=${1}
+                               shift
+                               ;;
                        -r|--rootfs)
                                shift
                                ROOTFS=${1}
@@ -256,23 +263,23 @@ function copy_netdriver_to_image()
                                                                                 
        mkdir "$MNT/lib/modules"
        if [ -e "$DRVDIR" ]; then
-               if [ -e "$DRVDIR/pcnet32.ko" ]; then
+               if [ -e "$DRVDIR/$NETDRV" ]; then
                        cp $DRVDIR/mii.ko $MNT/lib/modules
-                       cp $DRVDIR/pcnet32.ko $MNT/lib/modules
+                       cp $DRVDIR/$NETDRV $MNT/lib/modules
                else
-                       die "Failed to find pcnet32.ko at $DRVDIR."
+                       die "Failed to find $NETDRV at $DRVDIR."
                fi
-       elif [ -e "$fdir/pcnet32.ko" ]; then
+       elif [ -e "$fdir/$NETDRV" ]; then
                cp $fdir/mii.ko $MNT/lib/modules
-               cp $fdir/pcnet32.ko $MNT/lib/modules
+               cp $fdir/$NETDRV $MNT/lib/modules
        else
-               die "Xm-test requires the pcnet32 driver to run."
+               die "Xm-test requires at minimum the 8139too.ko driver to run."
        fi
 
        # Make sure that modules will be installed
        if [ -e "$MNT/etc/init.d/rcS" ]; then
                echo "insmod /lib/modules/mii.ko" >> $MNT/etc/init.d/rcS
-               echo "insmod /lib/modules/pcnet32.ko" >> $MNT/etc/init.d/rcS
+               echo "insmod /lib/modules/$NETDRV" >> $MNT/etc/init.d/rcS
        else
                die "Failed to add insmod command to rcS file on image."
        fi